The development of software applications and products often involves multiple stages (e.g., idea, design, implementation, testing and modeling) in its lifecycle. Each of the stages involved in the lifecycle of software development, has a specific tool set associated with it. These tools are typically shared among different software applications in development.
The development of software applications also often requires the coordinated efforts of many developers (e.g., software programmers). This development often involves the creation and modification of several artifacts, the collective body of which is often stored in a centralized, common repository shared by the developers.
There are several Integrated Development Environments (IDEs) available today to assist developers in collaboratively developing software and contain a portion of the necessary tools for software development, such as, for example, Microsoft® Visual Studio® available from Microsoft® Corporation.